1. Field
The present disclosure relates to a resource management system and more specifically to a system and method of providing a fixed time offset-based dedicated co-allocation of a common resource set in the context of managing resources within a compute environment such as a grid or a cluster.
2. Introduction
Managers of clusters desire maximum return on investment often meaning high system utilization and the ability to deliver various qualities of service to various users and groups. A cluster is typically defined as a parallel computer that is constructed of commodity components and runs as its system software commodity software. A cluster contains nodes each containing one or more processors, memory that is shared by all of the processors in the respective node and additional peripheral devices such as storage disks that are connected by a network that allows data to move between nodes. A cluster is one example of a compute environment. Other examples include a grid, which is loosely defined as a group of clusters, and a computer farm which is another organization of computer for processing.
General background information on clusters and grids can be found in several publications. See, e.g., Grid Resource Management, State of the Art and Future Trends, Jarek Nabrzyski, Jennifer M. Schopf, and Jan Weglarz, Kluwer Academic Publishers, 2004; and Beowulf Cluster Computing with Linux, edited by William Gropp, Ewing Lusk, and Thomas Sterling, Massachusetts Institute of Technology, 2003.
Often a job will include several requirements and can be dependent upon another job. An illustrative job can be that every night a television station needs to perform a weather study for its weather reports. The station can contract with an owner or operator of a cluster or a grid for computing time from 2:00 AM to 4:00 AM to utilize compute environment resources to run the analysis. The analysis can involve reserving the resources and include several jobs that require different kinds of resources within the compute environment. For example, a first job can require several hours of processing time, but also be dependent upon a second job to perform data staging or preparation of data prior to the beginning of the first job. Where these two jobs are inter-related and require the consumption of several different types of resources within a cluster or a grid, there is needed in the art for way to maximize the use of resources while being able to process jobs requiring disparate but interrelated resources.